﻿using System;

namespace Mono.Cecil.Cil
{
	// Token: 0x02000158 RID: 344
	public abstract class VariableReference
	{
		// Token: 0x1700033E RID: 830
		// (get) Token: 0x06000C56 RID: 3158 RVA: 0x00036024 File Offset: 0x00034224
		// (set) Token: 0x06000C57 RID: 3159 RVA: 0x00006666 File Offset: 0x00004866
		public TypeReference VariableType
		{
			get
			{
				return this.variable_type;
			}
			set
			{
				this.variable_type = value;
			}
		}

		// Token: 0x1700033F RID: 831
		// (get) Token: 0x06000C58 RID: 3160 RVA: 0x0003603C File Offset: 0x0003423C
		public int Index
		{
			get
			{
				return this.index;
			}
		}

		// Token: 0x06000C59 RID: 3161 RVA: 0x00006670 File Offset: 0x00004870
		internal VariableReference(TypeReference variable_type)
		{
			this.variable_type = variable_type;
		}

		// Token: 0x06000C5A RID: 3162
		public abstract VariableDefinition Resolve();

		// Token: 0x06000C5B RID: 3163 RVA: 0x00036054 File Offset: 0x00034254
		public override string ToString()
		{
			bool flag = this.index >= 0;
			string result;
			if (flag)
			{
				result = "V_" + this.index.ToString();
			}
			else
			{
				result = string.Empty;
			}
			return result;
		}

		// Token: 0x04000791 RID: 1937
		internal int index = -1;

		// Token: 0x04000792 RID: 1938
		protected TypeReference variable_type;
	}
}
